package com.learn.mp.beans;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;

/**
 *
 * 属性最好用基本数据类型的封装对象。因为mybatis在做数据映射时，会判断这个属性是否为空。基本数据类型有默认值无法判断是否为空。
 *  int ==> 0
 *  boolean ==> false
 *
 *
 * @TableName
 *      MybatisPlus会默认使用实体类的类名到数据中找对应的表.
 *      也可单独指定具体对应的表名
 */
//@TableName(value="tbl_employee")
public class Employee {
    /*
     * @TableId:
     * 	 value: 指定表中的主键列的列名，
     *          如果实体属性名与列名一致，可以省略不指定.
     *   type: 指定主键策略.
     *          IdType.AUTO  数据库ID自增
     *          IdType.INPUT  用户输入ID
     *          IdType.ID_WORKER    全局唯一ID，内容为空自动填充（默认配置）
     *          IdType.UUID     全局唯一ID，内容为空自动填充
     */
//    @TableId(value="id" , type = IdType.AUTO)
    private Integer id;
    /**
     * 如果全局驼峰命名配置被关闭，<property name="dbColumnUnderline" value="false"></property>
     * 可通过@TableField详细指定字段对应的数据库字段名。
     *
     */
    @TableField(value = "last_name",exist = true)
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;

    @TableField(exist=false)
    private Double salary ;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email
                + ", gender=" + gender + ", age="
                + age + "]";
    }
}